const sqlite3 = require('sqlite3').verbose();
const path = require('path');

const dbPath = path.join(__dirname, 'fushen.db');
console.log('数据库路径:', dbPath);

const db = new sqlite3.Database(dbPath, (err) => {
  if (err) {
    console.error('连接数据库失败:', err);
    process.exit(1);
  } else {
    console.log('成功连接到数据库');
  }
});

console.log('修复数据库中的parent_id字段...');

// 修复所有非null且非数字的parent_id值
db.run("UPDATE documents SET parent_id = NULL WHERE parent_id IS NOT NULL AND typeof(parent_id) != 'integer'", function(err) {
  if (err) {
    console.error('修复失败:', err);
  } else {
    console.log(`修复了 ${this.changes} 条记录的parent_id字段`);
  }
  
  // 再次检查修复后的数据
  console.log('\n修复后检查用户3在主题6下的文档:');
  db.all('SELECT id, title, type, owner_id, topic_id, parent_id FROM documents WHERE owner_id = 3 AND topic_id = 6', (err, rows) => {
    if (err) {
      console.error('查询错误:', err);
    } else {
      console.log(`找到 ${rows.length} 条用户3在主题6下的文档:`);
      rows.forEach(row => {
        console.log(`  ID: ${row.id}, 标题: ${row.title}, 类型: ${row.type}, 所有者: ${row.owner_id}, 主题ID: ${row.topic_id}, 父级ID: ${row.parent_id}`);
      });
    }
    
    console.log('\n数据库修复完成');
    db.close((err) => {
      if (err) {
        console.error('关闭数据库失败:', err);
      } else {
        console.log('数据库连接已关闭');
      }
    });
  });
});